home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK2.toast / Development Kits (Disc 2) / ScriptX / Code Samples / autofind / source / button.sx < prev    next >
Encoding:
Text File  |  1996-05-21  |  2.5 KB  |  148 lines  |  [TEXT/ttxt]

  1. in module Autofinder
  2.  
  3. class Button (Actuator)
  4. inst vars
  5.     pressedBitmap
  6.     releasedBitmap
  7.     disabledBitmap
  8.     authordata
  9.     pressAction
  10.     releaseAction
  11.     activateAction
  12.     multiActivateAction
  13. end
  14.  
  15. method init self {class Button} #rest args
  16.                                 #key pressedBitmap:(undefined) \
  17.                                      releasedBitmap:(undefined) \
  18.                                      disabledBitmap:(undefined) ->
  19. (
  20.     apply nextmethod self args
  21.     self.pressedBitmap := pressedBitmap
  22.     self.releasedBitmap := releasedBitmap
  23.     self.disabledBitmap := disabledBitmap
  24.  
  25.     self
  26. )
  27.  
  28. method afterInit self {class Button} #rest args ->
  29. (
  30.     nextmethod self
  31.     setReleasedAppearance self
  32.     self
  33. )
  34.  
  35. method handlePress self {class Button} ->
  36. (
  37.     if (self.pressAction != undefined) do
  38.         self.pressAction self.authordata self
  39. )
  40.  
  41. method handleRelease self {class Button} ->
  42. (
  43.     if (self.releaseAction != undefined) do
  44.         self.releaseAction self.authordata self
  45. )
  46.  
  47. method handleActivate self {class Button} ->
  48. (
  49.     if (self.activateAction != undefined) do
  50.         self.activateAction self.authordata self
  51. )
  52.  
  53. method handleMultiActivate self {class Button} n ->
  54. (
  55.     if (self.multiActivateAction != undefined) do
  56.         self.multiActivateAction self.authordata self n
  57. )
  58.  
  59. method setPressedAppearance self {class Button} ->
  60. (
  61.     if (self.pressedBitmap != undefined) do
  62.         self.boundary := self.pressedBitmap
  63. )
  64.  
  65. method setReleasedAppearance self {class Button} ->
  66. (
  67.     if (self.releasedBitmap != undefined) do
  68.     (
  69.         self.boundary := self.releasedBitmap
  70.         -- NOTE!!!  THIS IS DUE TO BUG #4172
  71.         self.fill := undefined
  72.     )
  73. )
  74.     
  75. method setDisabledAppearance self {class Button} ->
  76. (
  77.     if (self.disabledBitmap != undefined) do
  78.         self.boundary := self.disabledBitmap
  79. )
  80.  
  81. method setActivatedAppearance self {class Button} ->
  82. (
  83.     setReleasedAppearance self
  84. )
  85.  
  86. method press self {class Button} ->
  87. (
  88.     if not self.enabled do
  89.         return
  90.     
  91.     nextmethod self
  92.     
  93.     setPressedAppearance self
  94.     
  95.     handlePress self
  96. )
  97.  
  98. method release self {class Button} ->
  99. (
  100.     if not self.enabled do
  101.         return
  102.     
  103.     nextmethod self
  104.  
  105.     setReleasedAppearance self
  106.  
  107.     handleRelease self
  108. )
  109.  
  110. method activate self {class Button} ->
  111. (
  112.     if not self.enabled do
  113.         return
  114.                 
  115.     nextmethod self
  116.     
  117.     setActivatedAppearance self
  118.  
  119.     handleActivate self
  120. )
  121.  
  122. method multiActivate self {class Button} n ->
  123. (
  124.     if not self.enabled do
  125.         return
  126.                 
  127.     nextmethod self n
  128.     
  129.     setActivatedAppearance self
  130.     
  131.     handleMultiActivate self n
  132. )
  133.  
  134. method enabledSetter self {class Button} value ->
  135. (
  136.     nextmethod self value
  137.  
  138.     if value then
  139.         setReleasedAppearance self
  140.     else
  141.         setDisabledAppearance self
  142.     
  143.     return value
  144. )
  145.  
  146.  
  147.  
  148.